// 分类模块
import { findHeadCategory } from '@/api/home.js'
// 提供默认的分类数据，防止出现空白的分类效果
import { category } from '@/utils/constant'

export default {
  namespaced: true,
  state: {
    list: category.map((item, index) => ({ id: index, name: item }))
  },
  mutations: {
    //   修改list的数据
    setList (state, payload) {
      state.list = payload
    },
    // 控制二级分类的隐藏
    hide (state, id) {
      // 根据id找到要控制的一级分类
      const cate = state.list.find(item => item.id === id)
      if (cate) {
        cate.open = false
      }
    },
    // 控制二级分类的显示
    show (state, id) {
      const cate = state.list.find(item => item.id === id)
      if (cate) {
        cate.open = true
      }
    }
  },
  actions: {
    async getList (ctx) {
      try {
        //   调用接口,获取分类数据
        const res = await findHeadCategory()

        // 给所有的一级分类数据添加一个标志位,用于控制二级分类的显示和隐藏
        res.result.forEach(item => {
          item.open = false
        })

        ctx.commit('setList', res.result)
      } catch {
        alert('获取分类数据失败')
      }
    }
  },
  getters: {}
}
